home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1998 May
/
EnigmA AMIGA RUN 27 (1998)(G.R. Edizioni)(IT)[!][issue 1998-05].iso
/
earcd
/
sinclair-ql
/
tas_readme
< prev
next >
Wrap
Text File
|
1998-02-24
|
3KB
|
93 lines
Short: patch over TAS instructions with Amiga-friendly code
Author: Mark J Swift
Version: 1.15
Uploader: msw@blackpool.ac.uk
Removes TAS instructions from binaries for Amiga compatibility.
ARCHIVE CONTENTS
NO_TAS_bas - patcher to remove TAS instructions
NO_TAS_task - as above but TURBO compiled
RESTORE_TAS_bas - patcher to restore TAS instructions
RESTORE_TAS_task - as above but TURBO compiled
TAS_readme - this file
WHY IS IT NECESSARY?
Amiga hardware does not allow the CPU two contiguous bus cycles,
so any read/modify/write cycle is dammed to fail. As a result,
the TAS instruction doesn't work and can even mess up the next
instruction fetch, causing privilege violations and illegal
instructions
THE PATCHER PROGRAMS
* NO_TAS *
In recognised TURBO'ed and QLIB'ed tasks, this program replaces
TAS with equivalent QL-compatible code. If the code is not
recognised, TAS is replaced by a Line-A instruction (which is
programmed to emulate TAS but is not QL-compatible) or by extending
the code.
FIXES FOR QLIBERATOR
The Q_Liberator runtime libraries contain a single TAS instruction
TAS $8F(A6) in v3.22 and TAS $8F(A4) in the the budget compiler.
As a result any program compiled to include libraries will also
contain this instruction.
NO_TAS automatically recognises QLIB'ed tasks, removes the TAS
instruction and substitutes equivalent code that is compatible
with both a 'real' QL and Amiga-QDOS.
FIXES FOR TURBO COMPILER
The TURBO compiler package contains a single TAS $8F(A6) in
PARSER_task and two TAS instructions ( TAS $8F(a6) and
TAS $17(a2) ) in CODEGEN_task. Any program compiled with TURBO
may also contain these instructions.
NO_TAS automatically recognises TURBO'ed tasks, removes the TAS
instructions and substitutes equivalent code that is compatible
with both a 'real' QL and Amiga-QDOS.
FIXES FOR NON QLIB/TURBO CODE
If the file is not recognisable as either QLIB or TURBO code,
NO_TAS will produce a disassembly for every TAS found and will
ask you whether or not to replace the instruction. The program
may however, display TAS instructions where none are present.
A good rule-of-thumb is that true CODE will be surrounded by
other machine code instructions, whereas DATA will be liberally
sprinkled with DC.Ws
If the file is less than 32K, NO_TAS will replace TAS instructions
with a BSR to code that is tagged onto the end of the file. The
result is code that is compatible with both Amiga-QDOS and a 'real'
QL.
If the file is bigger than 32K, TAS instructions are replaced
by a Line-A instruction (which is programmed to emulate TAS).
Line-A code is INCOMPATIBLE with a 'real' QL. Code modified in
this way will cause a total system crash if run on a real QL
* RESTORE_TAS *
Use this program to 'put-back' TAS instructions into programs
that have been altered by NO_TAS.
CONTACT
post: MARK J SWIFT e-mail: msw@blackpool.ac.uk
175 CHURCH STREET
BLACKPOOL
LANCS
FY1 3NX